package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;

import java.util.Date;
import java.util.List;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.hr.example.CompanyExample.E_ADDRESS;
import static org.jsola.hr.example.CompanyExample.E_ADMINISTRATOR_USER_IDS;
import static org.jsola.hr.example.CompanyExample.E_BUSINESS_SCOPE;
import static org.jsola.hr.example.CompanyExample.E_CLIENT_LEVEL;
import static org.jsola.hr.example.CompanyExample.E_CLIENT_PHONE;
import static org.jsola.hr.example.CompanyExample.E_DEP_ID;
import static org.jsola.hr.example.CompanyExample.E_EMAIL;
import static org.jsola.hr.example.CompanyExample.E_INDUSTRY;
import static org.jsola.hr.example.CompanyExample.E_LEGAL_PERSON;
import static org.jsola.hr.example.CompanyExample.E_LOGO;
import static org.jsola.hr.example.CompanyExample.E_NAME;
import static org.jsola.hr.example.CompanyExample.E_OFFICIAL_WEBSITE;
import static org.jsola.hr.example.CompanyExample.E_PERSON_SIZE;
import static org.jsola.hr.example.CompanyExample.E_PROFILE;
import static org.jsola.hr.example.CompanyExample.E_SERVER_ANNEX;
import static org.jsola.hr.example.CompanyExample.E_TELEPHONE;
import static org.jsola.hr.example.CompanyExample.N_ADDRESS;
import static org.jsola.hr.example.CompanyExample.N_ADMINISTRATOR_USER_IDS;
import static org.jsola.hr.example.CompanyExample.N_BUSINESS_SCOPE;
import static org.jsola.hr.example.CompanyExample.N_CLIENT_LEVEL;
import static org.jsola.hr.example.CompanyExample.N_CLIENT_PHONE;
import static org.jsola.hr.example.CompanyExample.N_DEP_ID;
import static org.jsola.hr.example.CompanyExample.N_EMAIL;
import static org.jsola.hr.example.CompanyExample.N_INDUSTRY;
import static org.jsola.hr.example.CompanyExample.N_LEGAL_PERSON;
import static org.jsola.hr.example.CompanyExample.N_LOGO;
import static org.jsola.hr.example.CompanyExample.N_NAME;
import static org.jsola.hr.example.CompanyExample.N_OFFICIAL_WEBSITE;
import static org.jsola.hr.example.CompanyExample.N_PERSON_SIZE;
import static org.jsola.hr.example.CompanyExample.N_PROFILE;
import static org.jsola.hr.example.CompanyExample.N_SERVER_ANNEX;
import static org.jsola.hr.example.CompanyExample.N_TELEPHONE;

/**
 * 用工单位
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【用工单位】列表展示对象")
@Data
public class CompanyListVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private String id;

    @ApiModelProperty(notes = N_NAME, example = E_NAME)
    private String name;

    @ApiModelProperty(notes = N_INDUSTRY, example = E_INDUSTRY)
    private String industry;

    @ApiModelProperty(notes = N_ADMINISTRATOR_USER_IDS, example = E_ADMINISTRATOR_USER_IDS)
    private String administratorUserIds;


    @ApiModelProperty(notes = N_LOGO, example = E_LOGO)
    private String logo;

    @ApiModelProperty(notes = N_BUSINESS_SCOPE, example = E_BUSINESS_SCOPE)
    private String businessScope;

    @ApiModelProperty(notes = N_PROFILE, example = E_PROFILE)
    private String profile;

    @ApiModelProperty(notes = N_LEGAL_PERSON, example = E_LEGAL_PERSON)
    private String legalPerson;

    @ApiModelProperty(notes = N_ADDRESS, example = E_ADDRESS)
    private String address;

    @ApiModelProperty(notes = N_PERSON_SIZE, example = E_PERSON_SIZE)
    private String personSize;

    @ApiModelProperty(notes = N_CLIENT_LEVEL, example = E_CLIENT_LEVEL)
    private String clientLevel;

    @ApiModelProperty(notes = N_CLIENT_PHONE, example = E_CLIENT_PHONE)
    private String clientPhone;

    @ApiModelProperty(notes = N_OFFICIAL_WEBSITE, example = E_OFFICIAL_WEBSITE)
    private String officialWebsite;

    @ApiModelProperty(notes = N_TELEPHONE, example = E_TELEPHONE)
    private String telephone;

    @ApiModelProperty(notes = N_EMAIL, example = E_EMAIL)
    private String email;

    @ApiModelProperty(notes = N_DEP_ID, example = E_DEP_ID)
    private String depId;

    @ApiModelProperty(notes = N_SERVER_ANNEX, example = E_SERVER_ANNEX)
    private String serverAnnex;

    @ApiModelProperty(notes = N_GMT_CREATE, example = E_GMT_CREATE)
    private Date gmtCreate;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Date gmtModified;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Integer empCount;

    @ApiModelProperty(notes = "管理员列表")
    private List<Administrator> administratorList;

    @ApiModelProperty(notes = "合同状态：true处于有效期内；false:已过期")
    private Boolean contractStatus;

    @Data
    public static class Administrator {
        @ApiModelProperty(notes = "管理员员工姓名")
        private String administratorUserName;

        @ApiModelProperty(notes = "管理员员工电话")
        private String administratorUserPhone;
    }

}

